package com.yanjiali.service;

import com.yanjiali.entity.Comment;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yanjiali.model.R;
import com.yanjiali.model.req.AddCommentReq;
import com.yanjiali.model.req.DeleteCommentReq;
import com.yanjiali.model.req.PageGetCommentListByArticleIdReq;
import com.yanjiali.model.req.PageGetReplyByParentIdReq;
import com.yanjiali.model.resp.*;
import com.yanjiali.model.GetLikeCommentListResp;

/**
 * @Package: com.yanjiali.service
 * @Author: yanjiali
 * @Created: 2025/4/23 21:33
*/
public interface CommentService extends IService<Comment>{

    /**
     * 分页获取对应文章的评论
     * @param pageGetCommentListByArticleIdReq
     * @return
     */
    R<PageGetCommentListByArticleIdResp> queryTheCommentListByPageAccordingToTheArticleId(PageGetCommentListByArticleIdReq pageGetCommentListByArticleIdReq);

    /**
     * 根据parentId分页查询回复
     * @param pageGetReplyByParentIdReq
     * @return
     */
    R<PageGetReplyByParentIdResp> pageGetReplyByParentId(PageGetReplyByParentIdReq pageGetReplyByParentIdReq);

    /**
     * 添加评论方法
     * @param addCommentReq
     * @return
     */
    R<AddCommentResp> addComment(AddCommentReq addCommentReq);

    /**
     * 删除评论方法
     * @param deleteCommentReq
     * @return
     */
    R<DeleteCommentResp> deleteComment(DeleteCommentReq deleteCommentReq);

    /**
     * 查询当前用户点赞评论列表
     * @return
     */
    R<GetLikeCommentListResp> getLikeCommentList();
}
